System and method for managing an internet domain based on the geographic location of an accessing user

ABSTRACT

A system and method for managing an Internet domain based on the geographic location of an accessing user. A particular embodiment of the system includes: receiving an access request from a client for access to a particular requested domain; determining a geo-location for the client; determining a corresponding geo-specific site based on the requested domain and the geo-location of the client; and redirecting the client access request to the corresponding geo-specific site.

TECHNICAL FIELD

Various embodiments illustrated by way of example relate generally tothe field of Internet domain management and geographic locationdetermination and, more specifically, to a system and method formanaging an Internet domain based on the geographic location of anaccessing user.

BACKGROUND

Geography plays a fundamental role in everyday life and affects, forexample, the products that consumers purchase, shows displayed on TV,and languages spoken, etc. Information concerning the geographiclocation of a networked entity, such as a network node, an Internetdomain server, and a network user may be useful for any number ofreasons.

Geographic location may be utilized to infer demographic characteristicsof a network user. Accordingly, geographic information may be utilizedto direct advertisements or offer other information via a network thathas a higher likelihood of being relevant to a network user at aspecific geographic location.

Geographic information may also be utilized by network-based contentdistribution systems as part of a Digital Rights Management (DRM)program or an authorization process to determine whether particularcontent may validly be distributed to a certain network location. Forexample, in terms of a broadcast or distribution agreement, certaincontent may be blocked from distribution to certain geographic areas orlocations.

Content delivered to a specific network entity, at a known geographiclocation, may also be customized according to the known geographiclocation. For example, localized news, weather, and events listings maybe targeted at a network entity where the geographic location of thenetworked entity is known. Furthermore content may be presented in alocal language and format.

Knowing the location of network entity can also be useful in combatingfraud. For example, where a credit card transaction is initiated at anetwork entity, the location of which is known and far removed from ageographic location associated with an owner of the credit card, acredit card fraud check may be initiated to establish the validity ofthe credit card transaction.

There are various ways to determine the geographic location of a networkentity with varying levels of accuracy. Techniques have been used toredirect a user to a particular Domain Name Server (DNS) or to redirectuser clicks to click interceptor/redirectors.

U.S. Pat. No. 7,711,850 describes an electronic marketplace that allowsowners of unused Internet domain names to lease the domain names using abidding process. The system allows owners to monetize domain names andlessees to obtain customers who are redirected from targeted domainnames. However, the '850 patent describes a technique for looking at theInternet Protocol (IP) address of the web surfer to determine thegeneral geographic location of the web surfer. The geographic locationassociated with the IP address of the web surfer can be misleading andthus can result in inappropriate redirects. Further, the '850 patentdescribes a technique for the temporary use of a domain sold to a singlewinning bidder. The '850 patent does not describe subdividing the use ofa domain by geography.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which like references indicatesimilar elements and in which:

FIG. 1 illustrates a conventional network diagram depicting a systemhaving a domain to which a plurality of users are in networked datacommunications, according to an example embodiment;

FIGS. 2 through 4 illustrate a network diagram, according to exampleembodiments, depicting systems having a domain to which a plurality ofusers are in networked data communications;

FIG. 5 is a processing flow chart illustrating an example embodiment ofa system and method for managing an Internet domain based on thegeographic location of an accessing user as described herein;

FIG. 6 illustrates a network diagram depicting a system having a set ofnetwork blocks and a set of data sources in network communication with anetwork block geo-locator via network, according to an exampleembodiment;

FIG. 7 illustrates a supervised approach in an example embodiment forcreating classification and regression data for the intermediateassignments produced by the intermediate assignment generators;

FIG. 8 illustrates the classifiers that receive the outputs of each ofthe intermediate assignment generators;

FIG. 9 illustrates a flow diagram showing the basic processing flow inan example embodiment;

FIG. 10 illustrates examples of portions of the existence features usedin a particular embodiment;

FIG. 11 illustrates examples of portions of the match features used in aparticular embodiment;

FIG. 12 illustrates examples of portions of the ancillary features usedin a particular embodiment;

FIG. 13 illustrates a process used in a particular embodiment fordetermining geo-location of a network block using a coarse to fineapproach;

FIG. 14 illustrates a process used in a particular embodiment forchoosing among a plurality of available strategies for determininggeo-location of a network block; and

FIG. 15 shows a diagrammatic representation of a machine in the form ofa computer system within which a set of instructions, for causing themachine to perform any one or more of the methodologies discussedherein, may be executed, according to an example embodiment.

DETAILED DESCRIPTION

According to example embodiments, a system and method for managing anInternet domain based on the geographic location of an accessing user isdescribed.

Other features will be apparent from the accompanying drawings and fromthe detailed description that follows. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of embodiments. It will beevident, however, to one of ordinary skill in the art that the presentdescription may be practiced without these specific details.

In various example embodiments described herein, a system enables abroker to intercept an access from a user to a particular Internetdomain and then redirect the access to a server that serves ageographical area corresponding to the geographical locale of the user.A domain owner can thereby efficiently manage and separately monetizethe domain name based on the geographical locale of the accessing users.

As described in various example embodiments, a domain owner can set up arelationship with a domain broker whereby the domain broker receivesuser clicks on the domain owner's domain name. The domain broker can usegeo-location technology to determine a geo-location of the user. Thedomain owner or broker can also set up a database that defines arelationship between various geo-locations and servers that servicethose locations. Third party licensees or bidders can bid on the variousgeo-locations under the particular domain and win the opportunity tohave their server associated with a particular geo-location in thedatabase. Then, the third party licensees or winning bidders pay thedomain owner a fixed fee, the bid price, or a variable fee based on eachgeo-specific click that is redirected to the third party's server. Inthis way, third party licensees can minimize their costs to only payingfor clicks originating from a defined geo-location. The domain owner canmaximize their income by receiving revenue from a larger group of thirdparty licensees.

For the purposes of the present specification, the term “geographiclocation” shall be taken to refer to any geographic location or areathat is identifiable utilizing any descriptor, metric or characteristic.The term “geographic location” shall accordingly be taken to include acontinent, a country, a state, a province, a county, a city, a town,village, an address, a Designated Marketing Area (DMA), a MetropolitanStatistical Area (MSA), a Primary Metropolitan Statistical Area (PMSA),location (latitude and longitude), zip or postal code areas, andcongressional districts. Furthermore, the term “location determinant”shall be taken to include any indication or identification of ageographic location.

The term “network address”, for purposes of the present specification,shall be taken to include any address that identifies a networkedentity, and shall include Internet Protocol (IP) addresses.

Typically, most network addresses (e.g., IP addresses) are associatedwith a particular geographic location. This is because routers thatreceive packets for a particular set of machines are fixed in locationand have a fixed set of network addresses for which they receivepackets. The machines that routers receive packets for tend to begeographically proximal to the routers. But, this may not always be thecase. For example, roaming Internet-Ready devices are exceptions. Forcertain contexts, it is important to know the location of a particularnetwork address or set of addresses. Mapping a particular networkaddress to a geographic location may be termed “geolocation”. Variousmethods of obtaining geographic information, combining such geographicinformation, and inferring a “block” to which a network addresscorresponds and which shares the same geographic information can beused. The details of the geolocation techniques used in the variousembodiments are described in more detail below. Initially, however, thedetails of the techniques used in the various embodiments forefficiently managing and separately monetizing a domain name based onthe geographical locale of the accessing users are provided next.

FIG. 1 illustrates a conventional network diagram depicting a system 10having a domain 12 to which a plurality of users (e.g., users 1, 2, and3) are in networked data communications. Domain 12 can represent aserver or other site associated with a particular domain name. As wellknown, users can be served links to domain names in web pages or othercontent items. In this conventional configuration shown in FIG. 1, usersfrom any geographical location (e.g., geo-locations 1, 2, or 3) whoaccess a link associated with domain 12 will be directed to domain 12.However, the owner or operator of domain 12 may not want or need usersfrom remote geo-locations to visit domain 12; because, these userstypically have low conversion rates. In other cases, the owner oroperator of domain 12 may not be able to support or legally sellproducts or services to users from remote geo-locations. Given theconventional configuration, the owner or operator of domain 12 cannoteffectively manage the traffic to domain 12 based on the geo-location ofthe accessing users.

FIG. 2 illustrates a network diagram, according to an exampleembodiment, depicting a system 200 having a domain 202 to which aplurality of users (e.g., users 1, 2, and 3) are in networked datacommunications. System 200 includes geo-specific site managers 204(e.g., geo-specific site managers 1, 2, and 3). System 200 also includesa geo-specific domain processing component 206 and database 150. Each ofthe geo-specific site managers 204 can be components of domain 202 asshown in FIG. 2. Alternatively, geo-specific site managers 204 canreceive redirected links from domain 202; but, they can be implementedseparately from domain 202 as shown in FIG. 3. In general, thegeo-specific domain processing component 206 of an example embodimentcan determine the geo-location of users who access the link oridentifier (e.g., a uniform resource locator or URL) associated withdomain 202. When domain 202 receives an indication that a user (e.g.,user 2) has activated a link or URL associated with domain 202, thegeo-specific domain processing component 206 initially receives the user(e.g., user 2) access. As described in more detail below, thegeo-specific domain processing component 206 can use various techniquesto accurately determine a precise geographical location corresponding tothe accessing user (e.g. geo-location 2 corresponding to user 2). Thisaccessing user geo-location can be compared with the information indatabase 150 to determine which of a plurality of pre-configuredgeo-specific sites correspond with the geographical locationcorresponding to the accessing user. Each of the geo-specific sites canbe pre-configured with information in database 150, the pre-configuredinformation in database 150 can define the geographical regioncorresponding to each geo-specific site and a link or URL for accessingeach geo-specific site. Using this information, the geo-specific domainprocessing component 206 can determine a particular geo-specific sitecorresponding with the geographical location corresponding of theaccessing user. The geo-specific domain processing component 206 canalso determine the link or URL for accessing the particular geo-specificsite. In this manner, the geo-specific domain processing component 206of domain 202 can receive links or accesses from accessing users anddirect or redirect the accessing users to a particular geo-specific sitecorresponding with the geographical location of the accessing user. Inan embodiment shown in FIG. 2, the accessing users can be directed to aparticular geo-specific site manager 204 corresponding with thegeographical location of the accessing user. In an embodiment shown inFIG. 3, the accessing users can be re-directed to a particulargeo-specific site 208 corresponding with the geographical location ofthe accessing user. In the embodiment of FIG. 3, the link or URL foraccessing the particular geo-specific site 208 can be obtained fromdatabase 150.

FIG. 4 illustrates a network diagram, according to an exampleembodiment, depicting a system having a domain 202 with which ageo-specific domain broker 207 is in networked data communications. Thegeo-specific domain broker 207 is also in network data communicationswith a plurality of users (e.g., users 1, 2, and 3). In a manner similarto the geo-specific domain processing component 206 of an exampleembodiment described above, the geo-specific domain broker 207 candetermine the geo-location of users who access the link or identifier(e.g., a uniform resource locator or URL) associated with domain 202.The embodiment of FIG. 4 offers a configuration in which thegeo-location determination processing is moved out of the domain 202.

Given the system configurations shown in FIGS. 2 through 4 and describedabove, the owner of domain 202 can effectively manage the Internetdomain based on the geographic location of an accessing user. Thisability to manage the Internet domain based on the geographic locationof an accessing user can be exploited in a variety of ways. Firstly, theowner of domain 202 could arrange a business enterprise associated withthe domain 202 based on the geographic location of accessing customers.For example, the owner of domain 202 could offer particular goods orservices or target advertising for customers from particular geographiclocations. The targeting of goods/services and advertising based ongeo-location would likely increase the value of those goods/services andadvertising to accessing customers.

Secondly, the owner of domain 202 could opt to focus a businessenterprise associated with the domain 202 on a particular geographiclocation of accessing customers. For example, the owner of domain 202may not have the resources or interest to service customers in a varietyof geographic locations associated with domain 202. In this case, forexample, the owner of domain 202 could limit the business to servicingcustomers only from geo-location 2. Customers accessing domain 202 fromgeo-location 1 or geo-location 3 would be ignored. In the conventionalnetwork configuration described above, these user accesses fromun-supported geo-locations would be wasted. In the conventional networkconfiguration, the owner of domain 202 would gain no benefit or revenuefrom these wasted accesses.

In the various embodiments described herein, the owner of domain 202 canmonetize these user accesses from un-supported geo-locations bylicensing a third party to receive these user accesses from particulargeo-locations. Referring again to FIG. 3, a network structure forredirecting user accesses to domain 202 based on the geographic locationof an accessing user was described. In the example embodiment, each ofthe particular geo-specific sites 208 receives user links or accessesonly from users at geographical locations corresponding to theparticular geo-specific sites 208. In this manner, the set of usersaccessing domain 202 can be geographically partitioned. Given thistechnique for geographically partitioning the accessing users, the ownerof domain 202 can sell licenses for each geographical partition to anythird party. Alternatively, the owner of domain 202 can set up anauction and receive bids for a license for each geographical partitionfrom any third party bidders. Importantly, the process for determiningthe geo-location of accessing users, as described herein, is precise;so, licensed third parties can be assured that accessing users will notbe re-directed improperly.

In the various embodiments described herein, the owner of domain 202 caneffectively franchise the domain 202. The owner of domain 202 retainscomplete ownership of the domain name and associated links and URLs.However, the licensed or franchised third parties can pay for theopportunity to leverage the domain 202. The licensed or franchised thirdparties can be assured that the accessing users will be accessing thedomain 202 from a defined geographical region. In a variety ofembodiments, the financial arrangement between the owner of domain 202and the licensee/franchisee can be variable. In one financialarrangement, the licensee/franchisee can pay a fixed fee for thegeo-specific license/franchise for a pre-defined time period. The fixedfee can be a set amount, a negotiated amount, or a winning bid amount.Alternatively, the licensee/franchisee can pay a variable fee for thegeo-specific license/franchise based on the number of user accesses tothe geo-specific site, a number of conversions, a return on investment(ROI) score, or other user-specific criteria. The variable fee for thegeo-specific license/franchise can also be based on temporal attributes,such as the time/date of a user access, the duration of a user access,or the number of times a user has returned to the geo-specific site.Alternatively, the licensee/franchisee can pay a variable fee for thegeo-specific license/franchise based on the amount or value ofgoods/services sold from the geo-specific site. The owner of domain 202can also negotiate with the licensee/franchisee for shares of costsand/or revenue derived from advertising and marketing the domain nameand its geographical partitions.

FIG. 5 is a processing flow chart illustrating an example embodiment 500of a system and method for managing an Internet domain based on thegeographic location of an accessing user as described herein. The methodof an example embodiment includes: receiving an access request from aclient for access to a particular requested domain (processing block505); determining a geo-location for the client (processing block 510);determining a corresponding geo-specific site based on the requesteddomain and the geo-location of the client (processing block 515); andredirecting the client access request to the corresponding geo-specificsite (processing block 520).

Various methods of obtaining geographic information, combining suchgeographic information, and inferring a network address corresponding togeographic information can be used. The details of the geolocationtechniques used in the various embodiments are described in more detailnext.

FIG. 6 illustrates a network diagram depicting a system 100 having a setof network blocks 116 and 118 (collectively network blocks 120) and aset of data sources 121 (e.g. network registry 112 and Domain NameServer (DNS) System 114) in network communication with a network blockgeo-locator 130 via network 110, according to an example embodiment.Network blocks 120 represent network entities having network addresseswithin a defined network block and for which a geographic location canbe determined. Data sources 121 represent various data sources fromwhich geo-location data may be collected. These data sources 121 mayinclude, but are not limited to, network registries, DNS servers,network Whois data sources, autonomous system networks, networkadministrative data, geographic databases, user demographic/profileinformation, governmental data sources, remote data collection agentshosted on data collection machines, and the like. In addition, datasources 121 can also include ancillary data source 115 from which othernetwork information can be obtained (e.g. whether a network is routable,the type of data connection, etc.)

Data sources 121 provide geo-location information that may be used todetermine the geographic location of a network entity with varyinglevels of accuracy and trustworthiness. Geo-location informationprovided by some data sources 121 may be used to validate or corroboratethe information provided by other data sources 121. These informationsources are highly dynamic and subject to widely varying levels ofaccuracy and trustworthiness over time. As described in more detailherein, various embodiments provide highly adaptable systems and methodsfor determining the geographic location of a network entity.

Referring now to FIG. 9, a flow diagram illustrates the basic processingflow in an example embodiment. In processing block 605, the networkblock geo-locator 130 gathers relevant geo-location data from the datasources 121. This data can include raw data from DNS systems 114,various internet registries 112, information from traceroutes, and othernetwork data sources. This raw data is processed in processing block 610to extract geo-location-relevant information from the raw data collectedfrom the data sources 121. This extracted geo-location-relevantinformation can be used to create intermediate assignments thatassociates available geo-location-relevant information with the networkblocks to which the information relates. In this manner, untested orincomplete geo-location information can be initially associated withparticular network blocks. Intermediate assignments are geo-locationassignments for a network that are based on distinct data sources andmethods. Because the distinct data sources may be of varying reliabilityand may require specialized processing, the network block geo-locator130 of an example embodiment described herein provides a separateintermediate assignment generator for each data source 121 from whichgeo-location-relevant information is obtained. A group of intermediateassignment generators 131 are shown in FIG. 6. In processing block 610shown in FIG. 9, one or more of these intermediate assignment generators131 are employed by the network block geo-locator 130 to createintermediate assignments from the raw network data.

As shown in FIG. 6, a particular example embodiment of the group ofintermediate assignment generators 131 are shown to include ahostname-label intermediate assignment generator 132, a hand-mappedintermediate assignment generator 134, a network registry intermediateassignment generator 136, a complete traceroute intermediate assignmentgenerator 140, an incomplete traceroute intermediate assignmentgenerator 142, and other intermediate assignment generators 138. Each ofthe group of intermediate assignment generators 131 is associated with adistinct data source 121. In a particular embodiment, a particularintermediate assignment generator 138 could be associated with aplurality of data sources 121.

In a particular example embodiment, the hostname-label intermediateassignment generator 132 can use the hostname available on the network110 and perhaps an associated token that may identify a specificcountry, city, or state associated with the hostname. The hand-mappedintermediate assignment generator 134 can use data provided by networkexperts who have analyzed a particular network of interest and who haveproduced geo-location information by hand or using offline automatedtechniques. The network registry intermediate assignment generator 136can use network registry information available on the network 110, suchas information provided by a well-known WhoIs service. Other availablenetwork registry information can also be used to provide or implygeo-location information for the network registry intermediateassignment generator 136.

The complete traceroute intermediate assignment generator 140 usestraceroute information to obtain geo-location information. Traceroutingis a well-known technique for tracing the path of a data packet from asource network entity to a destination network entity. In a particularembodiment, traceroute is a computer network tool used to determine theroute taken by packets across an Internet Protocol (IP) network.Tracerouting can use Internet Control Message Protocol (ICMP) packets toaccomplish the traceroute. ICMP is one of the core protocols of theInternet protocol suite. It is chiefly used by networked computers'operating systems to send error messages—indicating, for instance, thata requested service is not available or that a host or router could notbe reached. Routers, switches, servers, and gateways on the data pathcan provide geo-location information associated with the source networkentity or the destination network entity. In the case where a completetraceroute is available and the very last hop of a traceroute thatcompleted was associated with a given country, state, or city, thecomplete traceroute intermediate assignment generator 140 can be used toobtain the geo-location data and to create the intermediate assignment.In the case where a complete traceroute is not available or the verylast hop of a traceroute that did not actually complete was associatedwith a given country, state, or city, the incomplete tracerouteintermediate assignment generator 142 can be used to obtain theavailable geo-location data and to create the intermediate assignment asbest as can be determined from the incomplete data. Similarly, the otherintermediate assignment generators 138 can use specific techniques toobtain geo-location information from particular data sources 121 andcreate the intermediate assignments as best as can be determined fromthe data obtained from the other data sources.

Referring again to FIG. 9, once the intermediate assignments are createdin processing block 610, the network block geo-location is determinedbased on the intermediate assignments in processing block 615. In thisprocess, a mapping is created from a particular network block to ageographical location. As will be described in more detail below, theanalysis engine 135 (shown in FIG. 6) uses the intermediate assignmentgenerators 131 to determine network block geo-location. The mapping of aparticular network block to a geographical location is complete inprocessing block 620 and the geographical location information can beprovided to other applications via an interface in processing block 625.

Referring now to FIGS. 7 and 8, the geo-location processing performed bythe analysis engine 135 is illustrated in more detail. FIG. 7illustrates a supervised approach in an example embodiment for creatingclassification and regression data for the intermediate assignmentsproduced by the intermediate assignment generators 131. In general, aclassifier is a mapping from a (discrete or continuous) feature space Xto a discrete set of labels, Y. A regressor is a mapping from a(discrete or continuous) feature space X to a continuous-valued realnumber, Z. As is well known generally, the input to a classifier orregressor can be a feature vector of fixed length, M. Each element inthe feature vector may be a real number or a discrete categorical item.The use of such feature vectors is well known to those of ordinary skillin the art.

In a particular embodiment, feature vectors may be used to performclassification or regression on network data sources. Feature vectorscan include a set of attributes associated with a network data source.Each attribute can be a discrete value or a continuous value (e.g. realnumber). The value for a particular attribute represents the degree towhich that attribute is present (or absent) in the particular datasource. The combination (aggregate) of each of the attribute values inthe feature vector represents a classification or regression value forthe particular network data source.

Classifiers and regressors can be created using a supervised learningapproach. Supervised learning is a machine learning technique forcreating a function from training data. The training data can consist ofa set of feature vectors and the desired outputs for each of the featurevectors. Using the supervised learning approach, training data can becompared with the feature vectors associated with particular networkdata sources. In this manner, the analysis engine 135 can determine howfar off a particular data source is from a desired output. Further, whentraining a classifier, it is also possible to generate an error rateestimate for that classifier using a technique such as cross-validation,which is described in more detail below. For a regressor, crossvalidation can be used to estimate the average error of the regressor.

Referring now to a particular embodiment shown in FIG. 7, the analysisengine 135 includes a classifier/regressor 139. Classifier/regressor 139can be used to classify and validate the intermediate assignmentscreated by the intermediate assignment generators 131. Theclassifier/regressor 139 uses feature vectors created by feature vectorgenerator 137. The feature vector generator 137 uses the output dataprovided by each of the intermediate assignment generators 131 to buildone or more feature vectors for each of the intermediate assignmentgenerators 131. As described above, each of the network data sources 121have a corresponding one of the intermediate assignment generators 131.The feature vector generator 137 can also uses the output data providedby the ancillary data source 115 to build the one or more featurevectors.

In a particular embodiment, the output classes for the output of theintermediate assignment generators 131 consist of two classes: corrector incorrect. In this embodiment, the criterion for correctness can bethat the city of the intermediate assignment is correct. In thisexample, the classifier/regressor 139 can process the intermediateassignment output as shown by example in FIG. 7.

As shown in FIG. 7, the analysis engine 135 is attempting to determinethe correctness of the network registry data source 112 by validatingthe output of network registry assignment generator 136 against theoutputs of the hostname-label assignment generator 132, the output ofthe complete traceroute assignment generator 140, and the output of theancillary data source 115. In the example shown in FIG. 7, the output ofthe hostname-label assignment generator 132 indicates that thegeo-location provided by that corresponding data source is, “US, Texas,Duncanville.” The output of the complete traceroute assignment generator140 indicates that the geo-location provided by that corresponding datasource is, “US, Texas, Dallas.” In contrast, the output of the networkregistry assignment generator 136 indicates that the geo-locationprovided by that corresponding data source is, “US, Colorado, Denver.”Given the data received by the classifier/regressor 139 shown in theexample of FIG. 7, the classifier/regressor 139 might output aclassification value of, “Incorrect” and a low regression value (e.g.0.2) indicating that the classifier/regressor 139 determined that thegeo-location data provided by the network registry data source 112 isincorrect. In a particular embodiment, the regressor portion ofclassifier/regressor 139 can be configured to produce a continuous valuebetween 0 and 1, where 0 indicates an incorrect condition and 1indicates a correct condition.

In processing the output of network registry assignment generator 136against the outputs of the hostname-label assignment generator 132, theoutput of the complete traceroute assignment generator 140, and theoutput of the ancillary data source 115, the feature vector generator137 generates a feature vector for each of the network data sources 121corresponding to each of the intermediate assignment generators 131.These feature vectors are described in more detail below.

In the example shown in FIG. 7, the analysis engine 135 determined thecorrectness of a single data source (i.e. the network registry datasource 112) by validating the output of the network registry assignmentgenerator 136 against the outputs of other intermediate assignmentgenerators 131 and the ancillary data source 115. In the example shownin FIG. 7, the analysis engine 135 can determine the correctness of eachnetwork data source 121 by validating the output of each network datasource 121 against the outputs of the other intermediate assignmentgenerators 131 and the ancillary data source 115. In this manner, Nclassifiers or regressors can be used to rank order and select from oneor more N intermediate assignments. Referring to FIG. 8, analysis engine135 is shown to include a classifier 160 for each of the intermediateassignments corresponding to each of the intermediate assignmentgenerators 131. Using classifiers 160, analysis engine 135 can determinethe correctness of each intermediate assignment and its correspondingnetwork data source 121. Classifiers 160 can also select and rate eachintermediate assignment. Then, based on the error rate estimate orregression value computed by each classifier 160, the best intermediateassignment can be selected.

As shown in FIG. 8, the analysis engine 135 includes an intermediateassignment selector 175 that performs the selection of the bestclassifier 160 output. Possible selection rules include simple logicalcombinations of the classification, the regression, and the error rateestimate for the classifier. For example, among the intermediateassignments classified as, “Correct”, the intermediate assignment with amaximized, “Goodness” value can be selected, where, “Goodness” can bedefined as (regressionValue*(1−errorRate of classifier). Alternatively,the intermediate assignment selector 175 can interpolate between thegeo-locations of the intermediate assignments that were classified as,“Correct.” For example, a particular geo-location can be determined tobe halfway between Dallas and Duncanville, Tex. if each of these correctintermediate assignments were provided to the intermediate assignmentselector 175.

Note that it is possible that at times, all intermediate assignments canbe determined to be, “Incorrect.” In this case, an external heuristiccan be used to assign the network block geo-locations.

In the example shown in FIG. 8, the classifiers 160 receive the outputsof each of the intermediate assignment generators 131. In the particularexample, the hostname-label intermediate assignment generator 132produces an output indicating a geo-location for the network block at,“US, Texas, Duncanville.” In the particular example, the networkregistry intermediate assignment generator 134 produces an outputindicating a geo-location for the network block at, “US, Colorado,Denver.” The complete traceroute intermediate assignment generator 140produces an output indicating a geo-location for the network block at,“US, Texas, Dallas.” The ancillary data source 131 produces an outputindicating that the network block is, “Routable and Digital SubscriberLoop (DSL).” Each of these outputs are provided to each of theclassifiers 160 of analysis engine 135. Using theclassification/regression process described above, each of theclassifiers 160 can validate the output of their particular data sourceagainst the output produced by each of the other data sources. As aresult, each classifier 160 can determine if each of the correspondingintermediate assignments is correct or incorrect. The classifiers 160can also produce corresponding regression values. These values producedby the classifiers 160 can be used by the intermediate assignmentselector 175 to select the best intermediate assignment from among theavailable intermediate assignments provided to the intermediateassignment selector 175. In the particular example of FIG. 8, theintermediate assignment selector 175 determines that the bestintermediate assignment is produced by the hostname-label data source,which indicates a geo-location of, “US, Texas, Duncanville.”

Referring to FIGS. 10 through 12, examples of portions of the featurevectors used in a particular embodiment are illustrated. These featurevectors are generated by feature vector generator 137 and provided asinputs to classifiers 160 as described above. In the examplesillustrated, a specific example of the feature vector for the networkregistry classifier 166 is provided. This sample feature vector can beviewed as including one or more of the following parts: 1) existencefeatures, which are boolean features indicating whether a particularintermediate assignment was present for a given network block, 2) matchfeatures, which are categorical features indicating whether a particularintermediate assignment matched (or was sufficiently proximal in itslocation) to another intermediate assignment, and 3) ancillary features,which are any features that are neither existence features nor matchfeatures.

FIG. 10 illustrates examples of portions of the existence features usedin a particular embodiment. Existence features are Boolean featuresindicating whether a particular intermediate assignment was present fora given network block. In the example shown in FIG. 10, three sampleexistence features with their corresponding possible values are shown.

FIG. 11 illustrates examples of portions of the match features used in aparticular embodiment. Match features are categorical featuresindicating whether a particular intermediate assignment matched (or wassufficiently proximal in its location) to another intermediateassignment. In the example shown in FIG. 11, three sample match featureswith their corresponding possible values are shown. Note that in theexample shown, a 25 mile threshold is used to illustrate the example;but any arbitrary threshold value or set of values could be used.

FIG. 12 illustrates examples of portions of the ancillary features usedin a particular embodiment. Ancillary features are any features that areneither existence features nor match features. In the example shown inFIG. 12, two sample existence features with their corresponding possiblevalues are shown.

In addition to the feature vectors for each of the intermediateassignments, the classifiers use training data as inputs to determinethe correctness of the intermediate assignments. In a particularembodiment, a desired output or set of outputs is provided for eachfeature vector. This training process, where desired outputs areavailable, along with corresponding feature vectors during the trainingprocess, is called supervised training These desired outputs for theintermediate assignment feature vectors can be obtained from a varietyof sources, including: 1) the analysis provided by a network-geographicanalyst (e.g. someone who has the expertise in determining the likelygeographic location associated with a network), or 2) an externalcorroboration source, such as a GPS system attached to a client computersystem, or a trusted postal address provided by a user from the address.The desired outputs can be associated with each of the correspondingfeature vectors to enable the classifiers 160 to appropriately classifyeach of the intermediate assignments. Each of the classifiers 160 canproduce a classification (e.g. correct or incorrect) and/or a regressionvalue (e.g. 0.0 to 1.0) based on an analysis of the intermediateassignment feature vectors and the corresponding desired output trainingdata.

Referring to FIG. 13, a process used in a particular embodiment fordetermining geo-location of a network block using a coarse to fineapproach is illustrated. Using this process, the network blockgeo-locator 130 can first determine the geo-location of a network blockbased on a coarse country-level determination. The network data sources121 can be used to obtain geo-location data corresponding to the networkblock as described above. This geo-location data can be used to createintermediate assignments which are classified as also described above.As a result, a coarse country-level determination of geo-location can bemade (processing block 655). Next, any intermediate assignmentsgenerated by any of the intermediate assignment generators 131 that arenot within the country of interest can be removed from furtherprocessing (processing block 660). Finally, a classification of theremaining (within country) intermediate assignments can be performed toobtain a more fine (e.g. city-level) geo-location determination(processing block 665). If necessary, this process can be repeated untila desired level of geo-location is obtained. Note that many differentgeographical levels may be used, including continent, country, region,state, city, postal code, latitude/longitude, etc.

Referring to FIG. 14, a process used in a particular embodiment forchoosing among a plurality of available strategies for determininggeo-location of a network block is illustrated. Using this process, morethan one strategy for determining geo-location of a network block may beavailable. For example, a geo-location strategy that is efficient forISP networks may not be as efficient on other types of non-ISP networks.In other cases, a geo-location strategy that is efficient for militarynetworks may not be as efficient on non-military networks. Thus,depending upon the type of network upon which network block geo-locationis being performed, one particular geo-location strategy may be betterthan another strategy. In the process shown in FIG. 14, if the networkblock geo-location is being performed on a non-military, non-ISPnetwork, processing block 684 is performed to use a non-military,non-ISP network block geo-location strategy. If the network blockgeo-location is being performed on a non-military, ISP network,processing block 686 is performed to use a non-military, ISP networkblock geo-location strategy. If the network block geo-location is beingperformed on a military network, processing block 688 is performed touse a military network block geo-location strategy. It will be apparentto those of ordinary skill in the art that other network blockgeo-location strategies could be provided and made selectable in theprocess shown in FIG. 14.

It should be understood that the network block geo-locator 130 describedherein can use a plurality of intermediate assignment generators 131 anda corresponding plurality of intermediate assignment classifiers 160.Thus, the architecture of the described embodiments provide a flexibleplatform in which new network data sources 121 and their correspondingintermediate assignment generators 131 and intermediate assignmentclassifiers 160 can be quickly added to the network block geo-locator130 and used for the geo-location analysis. Similarly, poorly performingor off-line network data sources 121 can be quickly taken off-line andremoved from the network block geo-locator 130 and not used for thegeo-location analysis. In this manner, the best network geo-locationdata sources can be used and the described system can quickly adopt newdata sources as they become available. As such, the various embodimentsdescribed herein improve over prior systems that are hard-wired tohard-coded to a pre-defined and fixed set of network data sources.

FIG. 15 shows a diagrammatic representation of a machine in the exampleform of a computer system 1000 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a server computer,a client computer, a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 1000 includes a processor 1002 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), orboth), a main memory 1004 and a static memory 1006, which communicatewith each other via a bus 1008. The computer system 1000 may furtherinclude a video display unit 1010 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 1000 also includes aninput device 1012 (e.g., a keyboard), a cursor control device 1014(e.g., a mouse), a disk drive unit 1016, a signal generation device 1018(e.g., a speaker) and a network interface device 1020.

The disk drive unit 1016 includes a machine-readable medium 1022 onwhich is stored one or more sets of instructions (e.g., software 1024)embodying any one or more of the methodologies or functions describedherein. The instructions 1024 may also reside, completely or at leastpartially, within the main memory 1004, the static memory 1006, and/orwithin the processor 1002 during execution thereof by the computersystem 1000. The main memory 1004 and the processor 1002 also mayconstitute machine-readable media. The instructions 1024 may further betransmitted or received over a network 1026 via the network interfacedevice 1020.

Applications that may include the apparatus and systems of variousembodiments broadly include a variety of electronic and computersystems. Some embodiments implement functions in two or more specificinterconnected hardware modules or devices with related control and datasignals communicated between and through the modules, or as portions ofan application-specific integrated circuit. Thus, the example system isapplicable to software, firmware, and hardware implementations.

In example embodiments, a computer system (e.g., a standalone, client orserver computer system) configured by an application may constitute a“module” that is configured and operates to perform certain operationsas described herein below. In other embodiments, the “module” may beimplemented mechanically or electronically. For example, a module maycomprise dedicated circuitry or logic that is permanently configured(e.g., within a special-purpose processor) to perform certainoperations. A module may also comprise programmable logic or circuitry(e.g., as encompassed within a general-purpose processor or otherprogrammable processor) that is temporarily configured by software toperform certain operations. It will be appreciated that the decision toimplement a module mechanically, in the dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.configured by software) may be driven by cost and time considerations.Accordingly, the term “module” should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired) or temporarily configured(e.g., programmed) to operate in a certain manner and/or to performcertain operations described herein.

While the machine-readable medium 1022 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single non-transitory medium or multiple media (e.g.,a centralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” shall also be taken to include anynon-transitory medium that is capable of storing, encoding or carrying aset of instructions for execution by the machine and that cause themachine to perform any one or more of the methodologies of the presentdescription. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, opticaland magnetic media.

As noted, the software may be transmitted over a network using atransmission medium. The term “transmission medium” shall be taken toinclude any medium that is capable of storing, encoding or carryinginstructions for transmission to and execution by the machine, andincludes digital or analog communications signal or other intangiblemedium to facilitate transmission and communication of such software.

The illustrations of embodiments described herein are intended toprovide a general understanding of the structure of various embodiments,and they are not intended to serve as a complete description of all theelements and features of apparatus and systems that might make use ofthe structures described herein. Many other embodiments will be apparentto those of skill in the art upon reviewing the above description. Otherembodiments may be utilized and derived therefrom, such that structuraland logical substitutions and changes may be made without departing fromthe scope of this disclosure. The figures herein are merelyrepresentational and may not be drawn to scale. Certain proportionsthereof may be exaggerated, while others may be minimized. Accordingly,the specification and drawings are to be regarded in an illustrativerather than a restrictive sense.

The following description includes terms, such as “up”, “down”, “upper”,“lower”, “first”, “second”, etc. that are used for descriptive purposesonly and are not to be construed as limiting. The elements, materials,geometries, dimensions, and sequence of operations may all be varied tosuit particular applications. Parts of some embodiments may be includedin, or substituted for, those of other embodiments. While the foregoingexamples of dimensions and ranges are considered typical, the variousembodiments are not limited to such dimensions or ranges.

The Abstract is provided to comply with 37 C.F.R. §1.74(b) to allow thereader to quickly ascertain the nature and gist of the technicaldisclosure. The Abstract is submitted with the understanding that itwill not be used to interpret or limit the scope or meaning of theclaims.

In the foregoing Detailed Description, various features are groupedtogether in a single embodiment for the purpose of streamlining thedisclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments have more featuresthan are expressly recited in each claim. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separate embodiment.

Thus, a system and method for managing an Internet domain based on thegeographic location of an accessing user have been described. Althoughembodiments have been described with reference to specific exampleembodiments, it will be evident that various modifications and changesmay be made to these embodiments without departing from the broaderspirit and scope of embodiments as expressed in the subjoined claims.

1. A method comprising: receiving an access request from a first clientfor access to a particular requested domain; determining a geo-locationfor the first client; determining a corresponding first geo-specificsite based on the requested domain and the geo-location of the firstclient; and redirecting the first client access request to thecorresponding first geo-specific site.
 2. The method of claim 1 whereinthe first geo-specific site is a licensee or franchisee of the requesteddomain.
 3. The method of claim 1 wherein determining a geo-location forthe first client is performed by geo-specific domain processing within asite corresponding to the requested domain.
 4. The method of claim 1wherein determining a geo-location for the first client is performed bya geo-specific domain broker operating outside of a site correspondingto the requested domain.
 5. The method of claim 1 including: receivingan access request from a second client for access to the particularrequested domain, the second client being at a different geo-locationrelative to the first client; determining a geo-location for the secondclient; determining a corresponding second geo-specific site based onthe requested domain and the geo-location of the second client, thesecond geo-specific site being different from the first geo-specificsite; and redirecting the second client access request to thecorresponding second geo-specific site.
 6. The method of claim 1including performing a database lookup to determine if a particularclient geo-location corresponds to a particular geo-specific site. 7.The method of claim 1 wherein determining a geo-location for the firstclient is performed using a plurality of intermediate assignmentgenerators.
 8. The method of claim 7 wherein each of the plurality ofintermediate assignment generators obtains geo-location-relevantinformation from a different data source.
 9. The method of claim 7wherein each of the plurality of intermediate assignment generatorsgenerate a feature vector, each feature vector including a plurality ofattributes associated with a different network data source, a value fora particular attribute of the plurality of attributes representing adegree to which that attribute is present or absent in a correspondingnetwork data source.
 10. The method of claim 7 including creatingclassification and regression data for the intermediate assignmentsproduced by the intermediate assignment generators.
 11. A systemcomprising: a processor; a memory coupled to the processor to storeinformation related to domains; and a geo-location determination module,operably coupled with the processor and the memory, operable to: receivean access request from a first client for access to a particularrequested domain; determine a geo-location for the first client;determine a corresponding first geo-specific site based on the requesteddomain and the geo-location of the first client; and redirect the firstclient access request to the corresponding first geo-specific site. 12.The system of claim 11 wherein the first geo-specific site is a licenseeor franchisee of the requested domain.
 13. The system of claim 11wherein determining a geo-location for the first client is performed bygeo-specific domain processing within a site corresponding to therequested domain.
 14. The system of claim 11 wherein determining ageo-location for the first client is performed by a geo-specific domainbroker operating outside of a site corresponding to the requesteddomain.
 15. The system of claim 11 being further configured to: receivean access request from a second client for access to the particularrequested domain, the second client being at a different geo-locationrelative to the first client; determine a geo-location for the secondclient; determine a corresponding second geo-specific site based on therequested domain and the geo-location of the second client, the secondgeo-specific site being different from the first geo-specific site; andredirect the second client access request to the corresponding secondgeo-specific site.
 16. The system of claim 11 being further configuredto perform a database lookup to determine if a particular clientgeo-location corresponds to a particular geo-specific site.
 17. Thesystem of claim 11 wherein determining a geo-location for the firstclient is performed using a plurality of intermediate assignmentgenerators.
 18. The system of claim 17 wherein each of the plurality ofintermediate assignment generators obtains geo-location-relevantinformation from a different data source.
 19. The system of claim 17wherein each of the plurality of intermediate assignment generatorsgenerate a feature vector, each feature vector including a plurality ofattributes associated with a different network data source, a value fora particular attribute of the plurality of attributes representing adegree to which that attribute is present or absent in a correspondingnetwork data source.
 20. The system of claim 17 being further configuredto create classification and regression data for the intermediateassignments produced by the intermediate assignment generators.
 21. Anarticle of manufacture comprising a non-transitory machine-readablestorage medium having machine executable instructions embedded thereon,which when executed by a machine, cause the machine to: receive anaccess request from a first client for access to a particular requesteddomain; determine a geo-location for the first client; determine acorresponding first geo-specific site based on the requested domain andthe geo-location of the first client; and redirect the first clientaccess request to the corresponding first geo-specific site.